跳到主要内容

欧拉定理 & 费马小定理

费马小定理

定义

pp 为素数,gcd(a,p)=1\gcd(a, p) = 1,则 ap11(modp)a^{p - 1} \equiv 1 \pmod{p}

另一个形式:对于任意整数 aa,有 apa(modp)a^p \equiv a \pmod{p}

证明

设一个质数为 pp,我们取一个不为 pp 倍数的数 aa

构造一个序列:A={1,2,3,p1}A=\{1,2,3\dots,p-1\},这个序列有着这样一个性质:

i=1p1 Aii=1p1(Ai×a)(modp)\prod_{i=1}^{p-1}\space A_i\equiv\prod_{i=1}^{p-1} (A_i\times a) \pmod p

证明:

(Ai,p)=1,(Ai×a,p)=1\because (A_i,p)=1,(A_i\times a,p)=1

又因为每一个 Ai×a(modp)A_i\times a \pmod p 都是独一无二的,且 Ai×a(modp)<pA_i\times a \pmod p < p

得证(每一个 Ai×aA_i\times a 都对应了一个 AiA_i

f=(p1)!f=(p-1)!, 则 fa×A1×a×A2×a×A3×Ap1(modp)f\equiv a\times A_1\times a\times A_2\times a \times A_3 \dots \times A_{p-1} \pmod p

ap1×ff(modp)ap11(modp)\begin{aligned} a^{p-1}\times f &\equiv f \pmod p \\ a^{p-1} &\equiv 1 \pmod p \end{aligned}

证毕。

也可用归纳法证明:

显然 1p1(modp)1^p\equiv 1\pmod p,假设 apa(modp)a^p\equiv a\pmod p 成立,那么通过二项式定理有

(a+1)p=ap+(p1)ap1+(p2)ap2++(pp1)a+1(a+1)^p=a^p+\binom{p}{1}a^{p-1}+\binom{p}{2}a^{p-2}+\cdots +\binom{p}{p-1}a+1

因为 (pk)=p(p1)(pk+1)k!\binom{p}{k}=\frac{p(p-1)\cdots (p-k+1)}{k!} 对于 1kp11\leq k\leq p-1 成立,在模 pp 意义下 (p1)(p2)(pp1)0(modp)\binom{p}{1}\equiv \binom{p}{2}\equiv \cdots \equiv \binom{p}{p-1}\equiv 0\pmod p,那么 (a+1)pap+1(modp)(a+1)^p \equiv a^p +1\pmod p,将 apa(modp)a^p\equiv a\pmod p 带入得 (a+1)pa+1(modp)(a+1)^p\equiv a+1\pmod p 得证。

欧拉定理

在了解欧拉定理(Euler's theorem)之前,请先了解欧拉函数。定理内容如下:

定义

gcd(a,m)=1\gcd(a, m) = 1,则 aφ(m)1(modm)a^{\varphi(m)} \equiv 1 \pmod{m}

证明

实际上这个证明过程跟上文费马小定理的证明过程是非常相似的:构造一个与 mm 互质的数列,再进行操作。

r1,r2,,rφ(m)r_1, r_2, \cdots, r_{\varphi(m)} 为模 mm 意义下的一个简化剩余系,则 ar1,ar2,,arφ(m)ar_1, ar_2, \cdots, ar_{\varphi(m)} 也为模 mm 意义下的一个简化剩余系。所以 r1r2rφ(m)ar1ar2arφ(m)aφ(m)r1r2rφ(m)(modm)r_1r_2 \cdots r_{\varphi(m)} \equiv ar_1 \cdot ar_2 \cdots ar_{\varphi(m)} \equiv a^{\varphi(m)}r_1r_2 \cdots r_{\varphi(m)} \pmod{m},可约去 r1r2rφ(m)r_1r_2 \cdots r_{\varphi(m)},即得 aφ(m)1(modm)a^{\varphi(m)} \equiv 1 \pmod{m}

mm 为素数时,由于 φ(m)=m1\varphi(m) = m - 1,代入欧拉定理可立即得到费马小定理。

扩展欧拉定理

定义

ab{abmodφ(m),gcd(a,m)=1,ab,gcd(a,m)1,b<φ(m),a(bmodφ(m))+φ(m),gcd(a,m)1,bφ(m).(modm)a^b \equiv \begin{cases} a^{b \bmod \varphi(m)}, &\gcd(a,m) = 1, \\ a^b, &\gcd(a,m)\ne 1, b < \varphi(m), \\ a^{(b \bmod \varphi(m)) + \varphi(m)}, &\gcd(a,m)\ne 1, b \ge \varphi(m). \end{cases} \pmod m

解释

读者可能对第二行产生疑问,这一行表达的意思是:如果 b<φ(m)b < \varphi(m) 的话,就不能降幂了。

主要是因为题目中 mm 不会太大,而如果 b<φ(m)b < \varphi(m),自然复杂度是可以接受的。而如果 bφ(m)b \ge \varphi(m) 的话,复杂度可能就超出预期了,这个时候我们才需要降幂来降低复杂度。

证明

直观理解

fermat1

需要知道的是,在 (modm)\pmod m 的条件下,abmodma^b \bmod m 的取值范围一定在 [0,m)[0, m),而 aimodm=(ai1modm)×amodma^i \bmod m = (a^{i-1} \bmod m) \times a \bmod m,那么对于任意一个数 aa,那么很容易就能知道它的 后继,在有限的空间内这一定会形成一个循环。

在扩展欧拉定理中,循环分为纯循环和混循环。其中纯循环中不存在节点有两个前驱,而混循环则反之。而 aimodna^i \mod n 形成的序列可以是一个混循环,那么只需要知道循环节的长度,和前面那一小段未进入循环节的长度,就可以根据这个性质来进行降幂了。

值得注意的是,无论是费马小定理,还是(扩展)欧拉定理,一个很重要的应用就是降幂,从而将不可能的表达式化为可能。

形式证明

证明转载自 synapse7,并进行了一些整理。

  1. 命题aa 的从 00 次,11 次到 bb 次幂模 mm 构成的序列中,存在 rrss,使得前 rr 个数(即从 a0modma^0 \bmod mar1modma^{r-1} \bmod m)互不相同,从第 rr 个数开始,每 ss 个数就循环一次。

    证明

    • 由鸽巢定理易证。

      我们把 rr 称为 aa 幂次模 mm 的循环起始点,ss 称为循环长度。(注意:rr 可以为 00

      用公式表述为:ir,aiai+s(modm)\forall i \ge r, a^i \equiv a^{i+s} \pmod{m}

  2. 命题aa 为素数的情况,该式成立。

    证明

    • 若模 mm 不能被 aa 整除,而因为 aa 是一个素数,那么 gcd(a,m)=1\gcd(a, m) = 1 成立,根据欧拉定理,容易证明该式成立。

    • 若模 mm 能被 aa 整除,那么存在 rrmm' 使得 m=armm = a^r m',且 gcd(a,m)=1\gcd(a, m')=1 成立。所以根据欧拉定理有 aφ(m)1(modm)a^{\varphi(m')} \equiv 1 \pmod{m'}

      又由于 gcd(ar,m)=1\gcd(a^r, m')=1,所以根据欧拉函数的求值规则,容易得到:φ(m)=φ(m)×(a1)ar1\varphi(m) = \varphi(m') \times (a-1)a^{r-1},即我们有:φ(m)φ(m)\varphi(m') \mid \varphi(m)

      所以 aφ(m)1(modm),φ(m)φ(m)    aφ(m)1(modm)a^{\varphi(m')} \equiv 1 \pmod {m'}, \varphi(m') \mid \varphi(m) \implies a^{\varphi(m)} \equiv 1 \pmod {m'},即 aφ(m)=km+1a^{\varphi(m)}=km'+1,两边同时乘以 ara^r,得 ar+φ(m)=km+ara^{r+\varphi(m)} = km + a^r(因为 m=armm = a^r m'

      所以对于 mm 中素因子 aa 的次数 rr 满足:arar+φ(m)(modm)a^r \equiv a^{r+\varphi(m)} \pmod m。我们可以简单变换形式,得到 推论

      b>r    abar+((br)modφ(m))(modm)b > r \implies a^b \equiv a^{r + ((b-r) \bmod \varphi(m))} \pmod {m}

      又由于 m=armm = a^r m',所以 φ(m)=φ(ar)φ(m)φ(ar)=ar1(a1)r\varphi(m) = \varphi(a^r) \varphi(m') \ge \varphi(a^r)=a^{r-1}(a-1) \ge r(tips:aa 是素数,最小是 22,而 r1r \ge 1)。

      所以因为 φ(m)r\varphi(m) \ge r,故有:

      arar+φ(m)armodφ(m)+φ(m)(modm)a^r \equiv a^{r+\varphi(m)} \equiv a^{r \bmod \varphi(m)+\varphi(m)} \pmod m

      所以

      abar+(br)modφ(m)armodφ(m)+φ(m)+(br)modφ(m)aφ(m)+bmodφ(m)(modm)\begin{aligned} a^b &\equiv a^{r+(b-r) \bmod \varphi(m)} \\ &\equiv a^{r \bmod \varphi(m) + \varphi(m) + (b-r) \bmod \varphi(m)} \\ &\equiv a^{\varphi(m) + b \bmod \varphi(m)} \end{aligned} \pmod m

      ababmodφ(m)+φ(m)(modm)a^b\equiv a^{b \bmod \varphi(m)+\varphi(m)}\pmod m

  3. 命题aa 为素数的幂的情况,该式成立。

    证明

    • 不妨令 a=pka = p^k,是否依然有 r,arar+φ(m)(modm)\forall r, a^{r} \equiv a^{r+\varphi(m)} \pmod m

      答案是肯定的,由命题 1 可知存在 ss 使得 as1(modm)a^s\equiv 1 \pmod m,所以 plcm(s,k)1(modm)p^{\mathrm{lcm}(s,k)} \equiv 1 \pmod {m},所以令 s=sgcd(s,k)s'=\frac{s}{\gcd(s,k)} 时,我们能有 psk1(modm)p^{s'k} \equiv 1 \pmod {m}

      此时有关系:sss' \mid ssφ(m)s \mid \varphi(m),且 r=rkrφ(m)r'= \lceil \frac{r}{k}\rceil \le r \le \varphi(m),由 r,sr',s'φ(m)\varphi(m) 的关系,依然可以得到 ababmodφ(m)+φ(m)(modm)a^b\equiv a^{b \bmod \varphi(m)+\varphi(m)}\pmod m

  4. 命题aa 为合数的情况,该式成立。

    证明

    • 只证 aa 拆成两个素数的幂的情况,大于两个的用数学归纳法可证。

      a=a1a2a=a_1a_2,其中 ai=pikia_i=p_i^{k_i},而 aia_i 的循环长度为 sis_i

      slcm(s1,s2)s \mid \operatorname{lcm}(s_1,s_2),由于 s1φ(m),s2φ(m)s_1 \mid \varphi(m),s_2 \mid \varphi(m),那么 lcm(s1,s2)φ(m)\operatorname{lcm}(s_1,s_2) \mid \varphi(m),所以 sφ(m)s \mid \varphi(m)r=max(riki)max(ri)φ(m)r=\max(\lceil \frac{r_i}{k_i} \rceil) \le \max(r_i) \le \varphi(m)

      r,sr,sφ(m)\varphi(m) 的关系,依然可以得到 ababmodφ(m)+φ(m)(modm)a^b \equiv a^{b \bmod \varphi(m)+\varphi(m)}\pmod m

      证毕。

习题

  1. SPOJ #4141 "Euler Totient Function"[Difficulty: CakeWalk]
  2. UVa #10179 "Irreducible Basic Fractions"[Difficulty: Easy]
  3. UVa #10299 "Relatives"[Difficulty: Easy]
  4. UVa #11327 "Enumerating Rational Numbers"[Difficulty: Medium]
  5. TIMUS #1673 "Admission to Exam"[Difficulty: High]